
package com.jc.vo;


import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * JC PAI 投保对象 PolicyVO.java
 */
public class PolicyVO implements Serializable {
    private static final long serialVersionUID = -1L;


    /**
     * 投保单号 由JC 返回（修改 时用到 建议保存）
     */
    private String snNo;




    private String productCode;

    /**
     * 原单号  传统险非不填
     */
    private String orderNumber;

    /**
     * 提单号 / 运单号
     */
    private String waybillNumber;


    // 投保人信息
//    /**
//     * 投保委托人
//     */
//    private String policyholder;
//
//    /**
//     * 投保人类型
//     */
//    private Byte policyholderType;
//
//    /**
//     * 投保联系人
//     */
//    private String policyholderContact;
//
//    /**
//     * 投保人联系电话
//     */
//    private String policyholderPhone;


    // 被保险人信息
    /**
     * 被保险人姓名/企业名称  必填
     */
    private String insured;

    /**
     * 被保险人类型 必填 基础数据
     */
    private Byte insuredType;

    /**
     * 被保险人证件号
     */
    private String insuredId;

    /**
     * 被保险人联系电话
     */
    private String insuredPhone;

    /**
     * 被保险人联系地址
     */
    private String insuredAddress;

    // 运输信息
    /**
     * 干线运输方式 必填 基础数据
     */
    private Integer transportType;

    /**
     * 运输工具名称 必填 基础数据
     */
    private String transportName;

    /**
     * 起运国家 必填 基础数据
     */
    private String fromCountry;

    /**
     * 起运详细地址 必填
     */
    private String fromAddress;

    /**
     * 中转国家  基础数据
     */
    private String transferCountry;

    /**
     * 中转地址
     */
    private String transferAddress;

    /**
     * 目的国家  必填  基础数据
     */
    private String toCountry;

    /**
     * 目的地址 必填
     */
    private String toAddress;

    /**
     * 赔付地点
     */
    private String compensationLocation;

    // 时间信息
    /**
     * 起运日期
     */
    private Date startTime;

    // 货物信息
    /**
     * 货物类别 必填  基础数据
     */
    private Integer goodsType;

    /**
     * 货物描述 必填
     */
    private String goodsNote;

    /**
     * 货物包装类型 必填  基础数据
     */
    private String goodsPackage;

    /**
     * 总包装数量 必填
     */
    private Integer packageCount;

    /**
     * 总重量（公斤） 必填
     */
    private BigDecimal weightPackaged;

    // 保险条款
    /**
     * 暴动保障 (true-启用) 必填
     */
    private Boolean riotProtection;

    // 金额相关
    /**
     * 币种 (如USD/CNY) 必填  基础数据
     */
    private String currency;

    /**
     * 货物申报价值 必填
     */
    private BigDecimal goodsValueAmount;

    /**
     * 保险加成比例
     */
    private BigDecimal appendPercent;

    /**
     * 投保金额 必填
     */
    private BigDecimal insuranceAmount;

    // 系统字段

    /**
     * 创建人
     */
    private String creator;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人
     */
    private String updater;

    /**
     * 更新时间
     */
    private Date updateTime;


    // 金融相关
    /**
     * 服务费用
     */
    private BigDecimal fee;

    /**
     * 费率
     */
    private BigDecimal feeRate;

    /**
     * 汇率
     */
    private BigDecimal exchangeRate;


    /**
     * 信用证号码
     */
    private String creditNumber;

    /**
     * 信用证条款
     */
    private String creditTerms;

    // 状态相关
    /**
     * 保额确定方式 必填
     */
    private Integer insuranceConfirmType;


    //跨境业务特有字段
    /**
     * 派送方式  必填
     */
    private Integer dispatchType;

    /**
     * 目的地类型 必填
     */
    private Byte destType;

    /**
     * 快递公司名称  基础数据
     */
    private String expressCompany;

    /**
     * 快递单号
     */
    private String expressTrackingNumber;

    /**
     * 入仓编号
     */
    private String warehousingNumber;

    /**
     * 上架保障 必填
     */
    private Integer shelfGuarantee;

    // 特殊保险条款
    /**
     * 保丢不保损条款 必填
     */
    private Boolean lostCareOnly;

    /**
     * 战争险保障 必填
     */
    private Boolean warProtection;

    /**
     * 回邮附加责任 必填
     */
    private Boolean returnProtection;

    /**
     * 送错地址保障 必填
     */
    private Boolean incorrectDispatchProtection;

    // 附加信息
    /**
     * 业务备注
     */
    private String note;

//    /**
//     * 货物包装照片
//     */
//    private String goodsPackageImages;

    /**
     * 物流结算币种 (运费)
     */
    private String deliveryCurrency;

    /**
     * 物流费用金额(运费)
     */
    private BigDecimal deliveryAmount;

    /**
     * 物流汇率 (运费)
     */
    private BigDecimal deliveryExchangeRate;

    /**
     * 货值区分标识
     */
    private String valueDifferentiation;

//    /**
//     * 快递单附件
//     */
//    private String expressTrackingNumberFile;



//    /**
//     * 货物描述附件
//     */
//    private String goodsNoteFile;




    // 传统保险特有字段
    /**
     * 仓至仓条款要求 (true-需要)
     */
    private Boolean warehouseTermsRequired;

    /**
     * 商业发票号码
     */
    private String invoiceNumber;

    /**
     * 销售合同编号
     */
    private String contractNumber;


    /**
     * 起运日期显示方式 基础数据
     */
    private Byte startTimeDisplayMode;


    /**
     * 回推地址
     */
    private String callbackAddress;


    // 投保成功后返回
    private PolicyResponse response;




    /**
     * 附件
     */
    private List<PolicyAttachment> attachmentList;






    public List<PolicyAttachment> getAttachmentList() {
        return attachmentList;
    }

    public void setAttachmentList(List<PolicyAttachment> attachmentList) {
        this.attachmentList = attachmentList;
    }


    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }




    public String getSnNo() {
        return snNo;
    }

    public void setSnNo(String snNo) {
        this.snNo = snNo;
    }

    public String getCallbackAddress() {
        return callbackAddress;
    }

    public void setCallbackAddress(String callbackAddress) {
        this.callbackAddress = callbackAddress;
    }

    public PolicyResponse getResponse() {
        return response;
    }

    public void setResponse(PolicyResponse response) {
        this.response = response;
    }

    public Integer getDispatchType() {
        return dispatchType;
    }

    public void setDispatchType(Integer dispatchType) {
        this.dispatchType = dispatchType;
    }

    public Byte getDestType() {
        return destType;
    }

    public void setDestType(Byte destType) {
        this.destType = destType;
    }

    public String getExpressCompany() {
        return expressCompany;
    }

    public void setExpressCompany(String expressCompany) {
        this.expressCompany = expressCompany;
    }

    public String getExpressTrackingNumber() {
        return expressTrackingNumber;
    }

    public void setExpressTrackingNumber(String expressTrackingNumber) {
        this.expressTrackingNumber = expressTrackingNumber;
    }

    public String getWarehousingNumber() {
        return warehousingNumber;
    }

    public void setWarehousingNumber(String warehousingNumber) {
        this.warehousingNumber = warehousingNumber;
    }

    public Integer getShelfGuarantee() {
        return shelfGuarantee;
    }

    public void setShelfGuarantee(Integer shelfGuarantee) {
        this.shelfGuarantee = shelfGuarantee;
    }

    public Boolean getLostCareOnly() {
        return lostCareOnly;
    }

    public void setLostCareOnly(Boolean lostCareOnly) {
        this.lostCareOnly = lostCareOnly;
    }

    public Boolean getWarProtection() {
        return warProtection;
    }

    public void setWarProtection(Boolean warProtection) {
        this.warProtection = warProtection;
    }

    public Boolean getReturnProtection() {
        return returnProtection;
    }

    public void setReturnProtection(Boolean returnProtection) {
        this.returnProtection = returnProtection;
    }

    public Boolean getIncorrectDispatchProtection() {
        return incorrectDispatchProtection;
    }

    public void setIncorrectDispatchProtection(Boolean incorrectDispatchProtection) {
        this.incorrectDispatchProtection = incorrectDispatchProtection;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

//    public String getGoodsPackageImages() {
//        return goodsPackageImages;
//    }
//
//    public void setGoodsPackageImages(String goodsPackageImages) {
//        this.goodsPackageImages = goodsPackageImages;
//    }

    public String getDeliveryCurrency() {
        return deliveryCurrency;
    }

    public void setDeliveryCurrency(String deliveryCurrency) {
        this.deliveryCurrency = deliveryCurrency;
    }

    public BigDecimal getDeliveryAmount() {
        return deliveryAmount;
    }

    public void setDeliveryAmount(BigDecimal deliveryAmount) {
        this.deliveryAmount = deliveryAmount;
    }

    public BigDecimal getDeliveryExchangeRate() {
        return deliveryExchangeRate;
    }

    public void setDeliveryExchangeRate(BigDecimal deliveryExchangeRate) {
        this.deliveryExchangeRate = deliveryExchangeRate;
    }

    public String getValueDifferentiation() {
        return valueDifferentiation;
    }

    public void setValueDifferentiation(String valueDifferentiation) {
        this.valueDifferentiation = valueDifferentiation;
    }

//    public String getExpressTrackingNumberFile() {
//        return expressTrackingNumberFile;
//    }
//
//    public void setExpressTrackingNumberFile(String expressTrackingNumberFile) {
//        this.expressTrackingNumberFile = expressTrackingNumberFile;
//    }

    public Boolean getWarehouseTermsRequired() {
        return warehouseTermsRequired;
    }

    public void setWarehouseTermsRequired(Boolean warehouseTermsRequired) {
        this.warehouseTermsRequired = warehouseTermsRequired;
    }

    public String getInvoiceNumber() {
        return invoiceNumber;
    }

    public void setInvoiceNumber(String invoiceNumber) {
        this.invoiceNumber = invoiceNumber;
    }

    public String getContractNumber() {
        return contractNumber;
    }

    public void setContractNumber(String contractNumber) {
        this.contractNumber = contractNumber;
    }

    public Byte getStartTimeDisplayMode() {
        return startTimeDisplayMode;
    }

    public void setStartTimeDisplayMode(Byte startTimeDisplayMode) {
        this.startTimeDisplayMode = startTimeDisplayMode;
    }

    public String getOrderNumber() {
        return orderNumber;
    }

    public void setOrderNumber(String orderNumber) {
        this.orderNumber = orderNumber;
    }

    public String getWaybillNumber() {
        return waybillNumber;
    }

    public void setWaybillNumber(String waybillNumber) {
        this.waybillNumber = waybillNumber;
    }

    public String getInsured() {
        return insured;
    }

    public void setInsured(String insured) {
        this.insured = insured;
    }

    public Byte getInsuredType() {
        return insuredType;
    }

    public void setInsuredType(Byte insuredType) {
        this.insuredType = insuredType;
    }

    public String getInsuredId() {
        return insuredId;
    }

    public void setInsuredId(String insuredId) {
        this.insuredId = insuredId;
    }

    public String getInsuredPhone() {
        return insuredPhone;
    }

    public void setInsuredPhone(String insuredPhone) {
        this.insuredPhone = insuredPhone;
    }

    public String getInsuredAddress() {
        return insuredAddress;
    }

    public void setInsuredAddress(String insuredAddress) {
        this.insuredAddress = insuredAddress;
    }

    public Integer getTransportType() {
        return transportType;
    }

    public void setTransportType(Integer transportType) {
        this.transportType = transportType;
    }

    public String getTransportName() {
        return transportName;
    }

    public void setTransportName(String transportName) {
        this.transportName = transportName;
    }

    public String getFromCountry() {
        return fromCountry;
    }

    public void setFromCountry(String fromCountry) {
        this.fromCountry = fromCountry;
    }

    public String getFromAddress() {
        return fromAddress;
    }

    public void setFromAddress(String fromAddress) {
        this.fromAddress = fromAddress;
    }

    public String getTransferCountry() {
        return transferCountry;
    }

    public void setTransferCountry(String transferCountry) {
        this.transferCountry = transferCountry;
    }

    public String getTransferAddress() {
        return transferAddress;
    }

    public void setTransferAddress(String transferAddress) {
        this.transferAddress = transferAddress;
    }

    public String getToCountry() {
        return toCountry;
    }

    public void setToCountry(String toCountry) {
        this.toCountry = toCountry;
    }

    public String getToAddress() {
        return toAddress;
    }

    public void setToAddress(String toAddress) {
        this.toAddress = toAddress;
    }

    public String getCompensationLocation() {
        return compensationLocation;
    }

    public void setCompensationLocation(String compensationLocation) {
        this.compensationLocation = compensationLocation;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Integer getGoodsType() {
        return goodsType;
    }

    public void setGoodsType(Integer goodsType) {
        this.goodsType = goodsType;
    }

    public String getGoodsNote() {
        return goodsNote;
    }

    public void setGoodsNote(String goodsNote) {
        this.goodsNote = goodsNote;
    }

    public String getGoodsPackage() {
        return goodsPackage;
    }

    public void setGoodsPackage(String goodsPackage) {
        this.goodsPackage = goodsPackage;
    }

    public Integer getPackageCount() {
        return packageCount;
    }

    public void setPackageCount(Integer packageCount) {
        this.packageCount = packageCount;
    }

    public BigDecimal getWeightPackaged() {
        return weightPackaged;
    }

    public void setWeightPackaged(BigDecimal weightPackaged) {
        this.weightPackaged = weightPackaged;
    }

    public Boolean getRiotProtection() {
        return riotProtection;
    }

    public void setRiotProtection(Boolean riotProtection) {
        this.riotProtection = riotProtection;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public BigDecimal getGoodsValueAmount() {
        return goodsValueAmount;
    }

    public void setGoodsValueAmount(BigDecimal goodsValueAmount) {
        this.goodsValueAmount = goodsValueAmount;
    }

    public BigDecimal getAppendPercent() {
        return appendPercent;
    }

    public void setAppendPercent(BigDecimal appendPercent) {
        this.appendPercent = appendPercent;
    }

    public BigDecimal getInsuranceAmount() {
        return insuranceAmount;
    }

    public void setInsuranceAmount(BigDecimal insuranceAmount) {
        this.insuranceAmount = insuranceAmount;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getUpdater() {
        return updater;
    }

    public void setUpdater(String updater) {
        this.updater = updater;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public BigDecimal getFee() {
        return fee;
    }

    public void setFee(BigDecimal fee) {
        this.fee = fee;
    }

    public BigDecimal getFeeRate() {
        return feeRate;
    }

    public void setFeeRate(BigDecimal feeRate) {
        this.feeRate = feeRate;
    }

    public BigDecimal getExchangeRate() {
        return exchangeRate;
    }

    public void setExchangeRate(BigDecimal exchangeRate) {
        this.exchangeRate = exchangeRate;
    }

    public String getCreditNumber() {
        return creditNumber;
    }

    public void setCreditNumber(String creditNumber) {
        this.creditNumber = creditNumber;
    }

    public String getCreditTerms() {
        return creditTerms;
    }

    public void setCreditTerms(String creditTerms) {
        this.creditTerms = creditTerms;
    }

    public Integer getInsuranceConfirmType() {
        return insuranceConfirmType;
    }

    public void setInsuranceConfirmType(Integer insuranceConfirmType) {
        this.insuranceConfirmType = insuranceConfirmType;
    }

//    public String getGoodsNoteFile() {
//        return goodsNoteFile;
//    }
//
//    public void setGoodsNoteFile(String goodsNoteFile) {
//        this.goodsNoteFile = goodsNoteFile;
//    }



}